#[钛妹]: 钛哥！我昨天写购物清单程序时卡住了
#[钛妹]: 为什么用append()添加商品总出错呀？

#[钛哥]: 哈哈，咱们从购物车说起~看好了！
shopping_cart = []  # 创建空购物车

#[钛妹]: 那我要先加牛奶和面包对吧？
shopping_cart.append("牛奶")  # 追加单个元素
shopping_cart.append("面包") 

#[钛哥]: 现在看购物车里有啥？
print(shopping_cart)  # ['牛奶', '面包']

#[钛妹]: 要买三盒鸡蛋怎么办？
shopping_cart.append("鸡蛋")  # 这样只能加一个
shopping_cart.extend(["鸡蛋"]*2)  # 用extend追加多个

#[钛哥]: 注意append和extend的区别哦！
print(shopping_cart)  # ['牛奶','面包','鸡蛋','鸡蛋','鸡蛋']

#[钛妹]: 要重新整理购物车怎么办？
temp_cart = shopping_cart  # 这可不是真拷贝！
shopping_cart.clear()  # 清空原列表
print(shopping_cart)   # []
print(temp_cart)       # 也变空了！

#[钛哥]: 这就是为什么要用copy()！
shopping_cart = ["苹果", "香蕉"]
real_copy = shopping_cart.copy()  # 创建独立副本
shopping_cart.clear()
print(real_copy)  # ['苹果','香蕉'] 不受影响

#[钛妹]: 那买套餐组合怎么处理？
combo = [["汉堡", "薯条"], ["可乐"]]
combo_copy = combo.copy()  # 浅拷贝

#[钛哥]: 修改嵌套列表试试看？
combo[0].append("鸡块")  
print(combo_copy)  # 子列表也被修改了！

#[钛妹]: 啊？这是为什么呀？
import copy
deep_combo = copy.deepcopy(combo)  # 深拷贝解决
combo[1].append("冰块")
print(deep_combo)  # 不受影响

#[钛妹]: 怎么统计买了多少鸡蛋？
pantry = ["鸡蛋","面粉","鸡蛋","糖"]
egg_count = pantry.count("鸡蛋")  # 直接计数
print(f"鸡蛋数量：{egg_count}")  # 输出2

#[钛哥]: 注意对象匹配规则哦~
nums = [1, 2, 3, 2, 2, '2']
print(nums.count(2))   # 3次
print(nums.count('2')) # 1次 

#[钛妹]: 类型不同也算不同对吧？
#[钛哥]: 没错！就像1和'1'是不同商品

#[钛妹]: 来个综合练习如何？
# 初始化购物车
cart = []
# 批量添加
cart.extend(["纸巾"]*3 + ["牙刷"]*2)

# 临时购物车
temp = cart.copy()
# 修改原购物车
cart.append("促销礼包")

# 统计差异
print(f"原车：{len(cart)}件")  # 6件
print(f"临时车：{len(temp)}件") # 5件

#[钛哥]: 重点来了！当我们需要...
# 错误示范：直接赋值
wrong_copy = cart
cart.clear()
print(wrong_copy)  # 空列表

# 正确做法：副本操作
correct_copy = cart.copy()

#[钛妹]: 今天学到的三件套：
#[钛妹]: 1. append像收银台扫码-逐件添加
#[钛妹]: 2. copy像购物车克隆-但小心套餐
#[钛妹]: 3. count像自动盘点机-精确统计

#[钛妹]: 对了各位！持续学习才是硬道理！
#[钛妹]: 点赞关注不迷路！